package cn.iocoder.yudao.module.yyzx.dal.mysql.outgoing;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.yyzx.dal.dataobject.customer.CustomerDO;
import cn.iocoder.yudao.module.yyzx.dal.dataobject.outgoing.OutgoingDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.yyzx.controller.admin.outgoing.vo.*;
import org.apache.ibatis.annotations.Param;
/**
 * 外出登记 Mapper
 *
 * @author 超级管理员
 */
@Mapper
public interface OutgoingMapper extends BaseMapperX<OutgoingDO> {

    OutgoingRespVO selectByRecordId(@Param("id") Integer id);

    default PageResult<OutgoingPageReqVO> selectPage(OutgoingPageReqVO reqVO) {
        return selectJoinPage(
                reqVO, OutgoingPageReqVO.class, new MPJLambdaWrapper<OutgoingDO>()
                        .select(CustomerDO::getCustomerName, CustomerDO::getCustomerSex, CustomerDO::getCustomerAge, CustomerDO::getRecordId, CustomerDO::getAttention)
                        .select(OutgoingDO::getOutingId,OutgoingDO::getCustomerId, OutgoingDO::getOutgoingReason, OutgoingDO::getOutgoingTime, OutgoingDO::getExpectedReturnTime, OutgoingDO::getActualReturnTime, OutgoingDO::getEscorted, OutgoingDO::getRelation, OutgoingDO::getEscortedTel, OutgoingDO::getAuditPerson, OutgoingDO::getAuditStatus, OutgoingDO::getAuditTine)
                        .leftJoin(CustomerDO.class, CustomerDO::getCustomerId, OutgoingDO::getCustomerId)
                        .eqIfExists(CustomerDO::getCustomerName, reqVO.getCustomerName())
        );

    }
}